package com.kl.config;

import lombok.Data;
import org.apache.commons.lang.StringUtils;
import org.yaml.snakeyaml.Yaml;

@Data
public class Configure {

    // 逆向生成对象的信息
    private Project project;
    // 逆向生成对象的生成模板
    private String template;
    // 生成实体所在的根目录
    private String projectRoot;

    public void initDefaultConfig() {
        Yaml yaml = new Yaml();
        // 将yml配置文件转换为实体类，读取类路径下的配置文件
        ProjectConfigure configure = yaml.loadAs(Configure.class.getResourceAsStream("/config.yml"),
                ProjectConfigure.class);
        // 获取生成类的信息
        project = configure.getProject();
        // 生成类关联了作者信息
        project.setAuthor(configure.getAuthor());
        // 生成类所在的包 = 根包 + 相对路径包
        project.getEntity().setPkg(configure.getBasePackage() + "/" + project.getEntity().getPkg());
        // 模板所在路径
        template = configure.getTemplate();
        if (StringUtils.isEmpty(configure.getBaseDir())) {
            // 输出：/Users/superlkl/IdeaProjects/middleware_study
            projectRoot = System.getProperty("user.dir");
        } else {
            // /Users/superlkl/IdeaProjects/middleware_study/freemarker_java/src/main/java/com/kl/
            projectRoot = configure.getBaseDir();
        }
    }
}
